#include <QGuiApplication>             // 引入用于 GUI 应用的主类（轻量级，适用于 QML 应用）
#include <QQmlApplicationEngine>       // 引入用于加载和管理 QML 文件的引擎类

int main(int argc, char *argv[])
{
    // 启用高 DPI 缩放支持，使应用在高分辨率屏幕上显示更清晰
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    // 创建 QGuiApplication 对象，是 Qt Quick/QML 应用程序的入口点
    QGuiApplication app(argc, argv);

    // 创建 QML 应用引擎对象，用于加载并运行 QML 文件
    QQmlApplicationEngine engine;

    // 指定要加载的 QML 文件路径，这里使用了 Qt 的资源系统（qrc:/）
    const QUrl url(QStringLiteral("qrc:/main.qml"));

    // 当 QML 加载完成时，如果根对象加载失败，则退出程序（错误处理机制）
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
                if (!obj && url == objUrl)
                    QCoreApplication::exit(-1);  // QML 加载失败，退出应用
            }, Qt::QueuedConnection);

    // 加载 QML 文件，启动 QML 界面
    engine.load(url);

    // 进入应用主事件循环，等待用户交互
    return app.exec();
}
